const { PDFDocument } = require('pdf-lib');
const fs = require('fs').promises;
const path = require('path');

//合并pdf文件
async function mergePdfs(inputDirectory, outputPath) {
  try {
    // 读取目录中的所有文件
    const files = await fs.readdir(inputDirectory);
    
    // 过滤出PDF文件并按名称排序
    const pdfFiles = files
      .filter(file => path.extname(file).toLowerCase() === '.pdf')
      .sort((a, b) => a.localeCompare(b, undefined, { numeric: true }));
    
    if (pdfFiles.length === 0) {
      console.log('没有找到PDF文件');
      return;
    }

    // 创建新的PDF文档
    const mergedPdf = await PDFDocument.create();
    
    // 逐个处理每个PDF文件
    for (const pdfFile of pdfFiles) {
      const filePath = path.join(inputDirectory, pdfFile);
      const fileBytes = await fs.readFile(filePath);
      
      // 加载PDF文档
      const pdfDoc = await PDFDocument.load(fileBytes);
      
      // 将页面复制到合并后的PDF中
      const pages = await mergedPdf.copyPages(pdfDoc, pdfDoc.getPageIndices());
      pages.forEach(page => mergedPdf.addPage(page));
    }

    // 保存合并后的PDF
    const mergedPdfBytes = await mergedPdf.save();
    await fs.writeFile(outputPath, mergedPdfBytes);
    
    console.log(`成功合并 ${pdfFiles.length} 个PDF文件到: ${outputPath}`);
  } catch (error) {
    console.error('合并PDF时出错:', error);
  }
}

// 使用示例
const inputDir = './pdf';  // 包含PDF文件的目录
const outputFile = '继父的代理妻.pdf';  // 合并后的输出文件
mergePdfs(inputDir, outputFile);